ইউনিয়ন (Union) হলো C++ এর একটি ডেটা স্ট্রাকচার, যা একাধিক ডেটা মেম্বার ধারণ করতে পারে, তবে একই সময়ে কেবলমাত্র একটি মেম্বারের জন্য মেমোরি বরাদ্দ করা হয়। অর্থাৎ, একটি ইউনিয়ন একাধিক ধরনের ডেটা রাখার ক্ষমতা রাখে, কিন্তু একই সময়ে শুধুমাত্র একটি মেম্বার সক্রিয় থাকে। ইউনিয়নের প্রতিটি মেম্বার একই মেমোরি লোকেশন ভাগ করে নেয়, ফলে সর্বশেষ সেট করা মানই ইউনিয়নের মধ্যে সংরক্ষিত থাকে।
union UnionName {
data_type member1;
data_type member2;
// অন্যান্য মেম্বার
};
#include <iostream>
using namespace std;
// Data নামক একটি ইউনিয়ন ঘোষণা করা
union Data {
int intValue;
float floatValue;
char charValue;
};
int main() {
// Data ইউনিয়নের একটি অবজেক্ট তৈরি করা
Data data;
// মেম্বার সেট এবং প্রিন্ট করা
data.intValue = 10;
cout << "Integer Value: " << data.intValue << endl;
data.floatValue = 3.14;
cout << "Float Value: " << data.floatValue << endl;
data.charValue = 'A';
cout << "Char Value: " << data.charValue << endl;
return 0;
}
আউটপুট:
Integer Value: 10
Float Value: 3.14
Char Value: A
বর্ণনা:
Data
নামে একটি ইউনিয়ন তৈরি করা হয়েছে, যার মধ্যে intValue
, floatValue
, এবং charValue
নামে তিনটি মেম্বার রয়েছে।ইউনিয়নের আকার তার সবচেয়ে বড় মেম্বারের আকারের সমান।
#include <iostream>
using namespace std;
union Data {
int intValue;
float floatValue;
double doubleValue;
};
int main() {
cout << "Size of int: " << sizeof(int) << endl;
cout << "Size of float: " << sizeof(float) << endl;
cout << "Size of double: " << sizeof(double) << endl;
cout << "Size of union Data: " << sizeof(Data) << endl;
return 0;
}
আউটপুট:
Size of int: 4
Size of float: 4
Size of double: 8
Size of union Data: 8
বর্ণনা:
Data
ইউনিয়নে intValue
, floatValue
, এবং doubleValue
নামে তিনটি মেম্বার রয়েছে।Data
ইউনিয়নের আকার হলো তার সবচেয়ে বড় মেম্বার doubleValue
এর আকারের সমান, অর্থাৎ ৮ বাইট।#include <iostream>
using namespace std;
union Data {
int intValue;
float floatValue;
};
struct Container {
Data data;
bool isInt; // true হলে intValue ধারন করছে, false হলে floatValue ধারন করছে
};
int main() {
Container container;
container.data.intValue = 50;
container.isInt = true;
if (container.isInt) {
cout << "Integer Value: " << container.data.intValue << endl;
} else {
cout << "Float Value: " << container.data.floatValue << endl;
}
container.data.floatValue = 3.5;
container.isInt = false;
if (container.isInt) {
cout << "Integer Value: " << container.data.intValue << endl;
} else {
cout << "Float Value: " << container.data.floatValue << endl;
}
return 0;
}
বর্ণনা:
Container
নামের একটি স্ট্রাকচার ব্যবহার করে ডেটা টাইপ শনাক্ত করা হয়েছে, যাতে ইউনিয়নের intValue
অথবা floatValue
কোনটি বর্তমানে অ্যাক্সেসযোগ্য তা জানা যায়।isInt
ফ্ল্যাগ ব্যবহার করে নির্ধারণ করা হয়েছে যে data
ইউনিয়নের মধ্যে বর্তমানে intValue
সংরক্ষিত কিনা।ইউনিয়ন বিশেষ ক্ষেত্রে কার্যকরী এবং মেমোরি ব্যবহারে গুরুত্বপূর্ণ ভূমিকা পালন করে।
common.read_more